package com.pipline3;

/**
 * @author ycd0075
 * @date 2023-07-11 14:36
 */
public class HandlerNode {
    private Handler handler;//结点内容
    private HandlerNode next;//结点的next指针

    public void exec(MyContext context){//每个结点要做的工作，执行当前handler方法加工产品，并启动下一个功能部件
        Boolean ret = handler.handle(context);
        if (ret) {//该结点的handler已经成功加工完成context产品
            if (next != null) {//该节点后面还有其它功能部件
                next.exec(context);//把产品交给下一个功能部件
            }
        }
    }

    public Handler getHandler() {
        return handler;
    }

    public void setHandler(Handler handler) {
        this.handler = handler;
    }

    public HandlerNode getNext() {
        return next;
    }

    public void setNext(HandlerNode next) {
        this.next = next;
    }
}
